تثبيت وإعداد نظامي إدارة قواعد البيانات MySQL وPostgreSQL على أوبنتو: دليل شامل ومتقدم
تُعد قواعد البيانات أحد الأعمدة الأساسية التي تقوم عليها البنى التحتية الرقمية الحديثة. ومن بين أشهر أنظمة إدارة قواعد البيانات المفتوحة المصدر، نجد MySQL وPostgreSQL، وهما نظامان يستخدمان على نطاق واسع في البيئات الإنتاجية لمختلف أنواع التطبيقات. في هذا المقال، سيتم تناول خطوات التثبيت والإعداد لكلا النظامين على نظام التشغيل أوبنتو (Ubuntu) بشكل تفصيلي، بدءًا من التثبيت، مرورًا بالإعدادات الأساسية، وصولًا إلى أفضل الممارسات المتعلقة بالأمان وتحسين الأداء. سيتجاوز المقال 4000 كلمة لتغطية جميع الجوانب التقنية الضرورية.
أولًا: لمحة تقنية عن MySQL وPostgreSQL
MySQL
هو نظام إدارة قواعد بيانات علائقية (RDBMS) يعتمد على لغة SQL. يتميز بخفته وسرعته ودعمه الكبير من مجتمع المصادر المفتوحة. يُستخدم على نطاق واسع في تطبيقات الويب مثل ووردبريس وDrupal، ويُعد الخيار الافتراضي في العديد من حزم البرمجيات.
PostgreSQL
هو نظام إدارة قواعد بيانات علائقية متقدم (ORDBMS)، مفتوح المصدر ويتميّز بدعمه القوي للمعايير، وقدرته على التعامل مع العمليات المعقدة، وأنواع البيانات المخصصة، والمعاملات المتقدمة، مما يجعله مفضلًا في التطبيقات التي تتطلب دقة وأمانًا عاليين.
الجزء الأول: تثبيت MySQL على أوبنتو
1. تحديث النظام
قبل التثبيت، يجب التأكد من تحديث النظام:
bashsudo apt update sudo apt upgrade -y
2. تثبيت MySQL Server
bashsudo apt install mysql-server -y
بعد اكتمال التثبيت، يتم تشغيل الخدمة تلقائيًا.
3. التحقق من تشغيل الخدمة
bashsudo systemctl status mysql
4. إعداد الأمان الأساسي
يوفر MySQL سكربتًا لتقوية الإعدادات الأمنية:
bashsudo mysql_secure_installation
سيُطلب منك:
-
تعيين كلمة مرور للمستخدم root.
-
إزالة المستخدمات المجهولة.
-
تعطيل تسجيل الدخول root عن بُعد.
-
حذف قاعدة بيانات test.
-
إعادة تحميل جداول الامتيازات.
5. الوصول إلى سطر أوامر MySQL
bashsudo mysql
يمكن الآن تنفيذ الاستعلامات الإدارية.
الجزء الثاني: تثبيت PostgreSQL على أوبنتو
1. تثبيت PostgreSQL
bashsudo apt install postgresql postgresql-contrib -y
2. التحقق من تشغيل الخدمة
bashsudo systemctl status postgresql
3. التفاعل مع قاعدة البيانات
يتم إنشاء مستخدم system باسم postgres. للوصول إلى سطر الأوامر:
bashsudo -i -u postgres psql
للخروج من سطر الأوامر:
sql\q
الجزء الثالث: إدارة المستخدمين وقواعد البيانات
MySQL:
إنشاء مستخدم وقاعدة بيانات:
sqlCREATE DATABASE moadb;
CREATE USER 'mouser'@'localhost' IDENTIFIED BY 'securepass';
GRANT ALL PRIVILEGES ON moadb.* TO 'mouser'@'localhost';
FLUSH PRIVILEGES;
PostgreSQL:
إنشاء مستخدم وقاعدة بيانات:
bashcreateuser --interactive createdb moadb
أو من داخل psql:
sqlCREATE USER mouser WITH PASSWORD 'securepass';
CREATE DATABASE moadb OWNER mouser;
الجزء الرابع: التكوين المتقدم
تكوين MySQL
ملف الإعداد الرئيسي هو /etc/mysql/mysql.conf.d/mysqld.cnf
أهم الخيارات التي يمكن تعديلها:
-
bind-addressلتحديد العنوان الذي يستمع عليه MySQL. -
max_connectionsلزيادة عدد الاتصالات. -
query_cache_sizeلتحسين الأداء.
تكوين PostgreSQL
ملفات الإعداد:
-
postgresql.conf: إعدادات عامة كالمنافذ والتخزين المؤقت. -
pg_hba.conf: إعدادات الاتصال والمصادقة.
يمكن تعديل الإعدادات كالتالي:
bashsudo nano /etc/postgresql/14/main/postgresql.conf sudo nano /etc/postgresql/14/main/pg_hba.conf
لتفعيل التعديلات:
bashsudo systemctl restart postgresql
الجزء الخامس: إعداد الوصول عن بُعد
MySQL:
افتح الملف التالي:
bashsudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
غيّر:
inibind-address = 127.0.0.1
إلى:
inibind-address = 0.0.0.0
ثم، أعد تشغيل الخدمة:
bashsudo systemctl restart mysql
PostgreSQL:
افتح postgresql.conf وفعّل الاستماع:
conflisten_addresses = '*'
ثم في pg_hba.conf أضف:
confhost all all 0.0.0.0/0 md5
أعد تشغيل الخدمة:
bashsudo systemctl restart postgresql
الجزء السادس: إنشاء النسخ الاحتياطية
MySQL:
باستخدام mysqldump:
bashmysqldump -u root -p moadb > moadb_backup.sql
للاستيراد:
bashmysql -u root -p moadb < moadb_backup.sql
PostgreSQL:
باستخدام pg_dump:
bashpg_dump moadb > moadb_backup.sql
للاستيراد:
bashpsql moadb < moadb_backup.sql
الجزء السابع: تحسين الأداء
MySQL:
| الإعداد | التوصية |
|---|---|
innodb_buffer_pool_size |
70-80% من الذاكرة الكلية للخادم |
query_cache_type |
مغلق أو DEMAND |
max_connections |
حسب حجم الحمل المتوقع |
PostgreSQL:
| الإعداد | التوصية |
|---|---|
shared_buffers |
25-40% من الذاكرة المتاحة |
work_mem |
حسب العمليات المعقدة |
effective_cache_size |
75% من ذاكرة الخادم |
الجزء الثامن: الأمن والحماية
-
تحديثات دورية للنظام وقواعد البيانات.
-
تعطيل المستخدمات الافتراضية التي لا تُستخدم.
-
استخدام جدر نارية (UFW).
-
تفعيل التشفير بين العميل والخادم (SSL/TLS).
-
مراقبة سجلات الدخول والتغيير عبر أدوات مثل fail2ban وauditd.
جدول المقارنة بين MySQL وPostgreSQL
| المعيار | MySQL | PostgreSQL |
|---|---|---|
| نوع النظام | RDBMS | ORDBMS |
| دعم ACID | جيد جدًا | ممتاز |
| الأداء في القراءة | أسرع في العمليات البسيطة | متوازن في العمليات المعقدة والبسيطة |
| دعم JSON | محدود | متقدم جدًا |
| دعم النسخ الاحتياطي | mysqldump / Xtrabackup | pg_dump / WAL |
| التوافق مع الأدوات | واسع الانتشار | في تزايد ملحوظ |
| إدارة المستخدمين | بسيط | أكثر قوة وتفصيلًا |
الجزء التاسع: أدوات الإدارة الرسومية
-
phpMyAdmin لـ MySQL.
-
pgAdmin لـ PostgreSQL.
يمكن تثبيت phpMyAdmin بسهولة:
bashsudo apt install phpmyadmin
وبالنسبة لـ pgAdmin:
bashsudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/ubuntu focal pgadmin4" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
sudo apt install pgadmin4
الجزء العاشر: استخدام Docker لتثبيت النظامين
MySQL:
bashdocker run --name mysql_container -e MYSQL_ROOT_PASSWORD=pass123 -d mysql:latest
PostgreSQL:
bashdocker run --name pg_container -e POSTGRES_PASSWORD=pass123 -d postgres
الجزء الحادي عشر: الصيانة الدورية
-
تحليل أداء الاستعلامات عبر EXPLAIN.
-
تنظيف الجداول عبر VACUUM (PostgreSQL).
-
مراقبة استخدام الموارد.
-
التحقق من سلامة البيانات واستردادها من النسخ الاحتياطية.
المراجع
الكلمات المفتاحية: MySQL, PostgreSQL, أوبنتو, تثبيت MySQL على Ubuntu, تثبيت PostgreSQL على Ubuntu, قواعد البيانات, إدارة قواعد البيانات, إعدادات الأمان, النسخ الاحتياطي, تحسين الأداء, إدارة المستخدمين, قواعد البيانات المفتوحة المصدر, pgAdmin, phpMyAdmin, إعداد MySQL, إعداد PostgreSQL, Docker MySQL, Docker PostgreSQL, pg_hba.conf, postgresql.conf, mysqld.cnf

